package day23.test;

import java.util.ArrayList;
import java.util.List;

/**
 * sort1_10类用于实现对1到10数字的特殊排序
 * 排序规则：奇数按正序排列在前，偶数按倒序排列在后
 * 即：1, 3, 5, 7, 9, 10, 8, 6, 4, 2
 */
public class sort1_10 {
    
    /**
     * 程序入口点，执行排序并输出结果
     * @param args 命令行参数
     */
    public static void main(String[] args) {
        // 调用排序方法获取结果数组
        int[] result = sortOddEven();
        // 遍历结果数组并输出
        for (int i = 0; i < result.length; i++) {
            System.out.print(result[i]);
            // 除了最后一个元素外，其他元素后都添加逗号和空格
            if (i < result.length - 1) {
                System.out.print(", ");
            }
        }
    }
    
    /**
     * 对1到10的数字按照指定规则进行排序
     * 规则：奇数按正序排列在前，偶数按倒序排列在后
     * @return 排序后的整数数组
     */
    public static int[] sortOddEven() {
        // 创建两个列表分别存储奇数和偶数
        List<Integer> odds = new ArrayList<>();
        List<Integer> evens = new ArrayList<>();
        
        // 分离奇数和偶数，遍历1到10的所有数字
        for (int i = 1; i <= 10; i++) {
            // 判断是否为偶数
            if (i % 2 == 0) {
                evens.add(i);
            } else {
                // 奇数添加到奇数列表
                odds.add(i);
            }
        }
        
        // 创建结果数组，大小为10
        int[] result = new int[10];
        int index = 0;
        
        // 先添加奇数（正序）
        for (int odd : odds) {
            result[index++] = odd;
        }
        
        // 再添加偶数（倒序）
        for (int i = evens.size() - 1; i >= 0; i--) {
            result[index++] = evens.get(i);
        }
        
        return result;
    }
}